#include "SysConfig.h"
#include <osgEarth/Config>
#include <osgEarth/StringUtils>
#include <osgDB/fstream>
#include <string>



//int SysConfig::registryInstance(SysConfig* c)
//{
//	if (!c) return -1;
//
//	if (gg_SysConfig)
//	{
//		delete gg_SysConfig;
//	}
//	gg_SysConfig = c;
//	return 0;
//}

int SysConfig::readFile(std::string path)
{

	osgEarth::Config doc;
	//std::ifstream in("../user_data/hbt/config/sys.xml");
	std::ifstream in(path);


	if (!doc.fromXML(in)) {
		return -1;
	}
	const osgEarth::Config* cfg = doc.child_ptr("config");
	if (!cfg) return -1;

	this->parseConfig(cfg);

	in.close();
	return 0;
}

int SysConfig::parseConfig(const osgEarth::Config* cfg)
{
	return 0;
}


AmkConfig::AmkConfig()
{
	stereo_scale = 1.0;
	amk_samples = -1;
}

static AmkConfig* gg_SysConfig = 0;

AmkConfig *AmkConfig::instance()
{
	if (!gg_SysConfig)
	{
		gg_SysConfig = new AmkConfig();
	}
	return gg_SysConfig;
}
std::string AmkConfig::FONT_FILE = "../user_data/common/font/simhei.ttf";

int AmkConfig::parseConfig(const osgEarth::Config* pc)
{
	const osgEarth::Config* cit = 0;

	//cit = pc->child_ptr("server");
	//if (cit) {
	//	this->serverPath = QString::fromStdString(cit->value());
	//}


	cit = pc->child_ptr("amk");
	if (!cit) return -1;

	if (cit->hasChild("samples")) {
		int sv = osgEarth::as(cit->child_ptr("samples")->value(), -1);
		this->amk_samples = sv;
	}
	return 0;
}
